#include <stdio.h>

int swap_copy(int a,int b)    //赋值传递参数
{
    int t;
    t = a ;
    a = b;
    b = t;
}

int swap_addr(int *a,int *b)    //地址传递参数
{
    int t;
    t = *a;
    *a = *b;
    *b = t;
}

int p,q;
int swap_global()    //全局传递参数
{
    int t;
    t = p;
    p = q;
    q = t;
}

int main(int argc, char const *argv[])
{
    int x=10,y=20;
/****x -> a, y ->b, a和b的值进行交换，x和y 的值不受影响，因为a，b （形参）与x，y （实参）是不同的储存空间，a，b 改变不影响x，y的值****/
    /****赋值传参****/
    printf("1: x=%d,y=%d\n",x,y);
    swap_copy(x,y);     
    printf("2: x=%d,y=%d\n",x,y);

    /****地址传参****/
    printf("3: x=%d,y=%d\n",x,y);
    swap_addr(&x,&y);     
    printf("4: x=%d,y=%d\n",x,y);

    /****全局传参****/
    p = x ;
    q = y ;
    printf("5: p=%d,q=%d\n",p,q);
    swap_global();     
    printf("6: p=%d,q=%d\n",p,q);


    return 0;
}
